Spatially Distorted Signaling: How Opinions Against Wind Infrastructure Delay Our Transition to Renewable Energy
This study analyzed the activity of U.S. wind power plants (2000-2016) to understand how population density, median income, and anti-wind opinions impacted wind plant operations. In hopes to understand potential delays in our transition to a more sustainable future, an investigation was conducted to quantify propensities in relation to local resistance against renewable energy developments for the listed attributes.
Statistical Analysis
Logit
Wind Power
Energy Access
Sustainable Energy Decarbonization Transition
Author
Sofia Ingersoll
Published
December 14, 2023
Spatially Distorted Signaling: How Opinions Against Wind Infrastructure Delay Our Transition to Renewable Energy
Spatial Distorted Signalling (SDS) is a term that describes the mobilization of minority opinion holders to electorally push-back and promote legislation that aligns with their beliefs. This phenomenon has the ability to skew accurate representation of public opinions due to effective organization practices. This leads to a disproportionate number of minority opinion holder interactions with local legislators and the judicial system. Leah Stokes (et.al) has explored the SDS phenomenon as a natural experiment in her piece, Electoral Backlash against Climate Policy: A Natural Experiment on Retrospective Voting and Local Resistance to Public Policy (2016). The findings in this paper describe that rural Canadian communities had a greater ability to mobilize and organize political push back against majority chair holders in parliament after the passing of legislation which invited large scale developments of wind infrastructure through incentives. Stokes’ subsequent work, Replication Data for: Prevalence and Predictors of Wind Energy Opposition in North America (2023), further explores variables like political affiliation and local mobilization. This study aims to reproduce those outcomes with U.S. wind plant data to understand how population density, income, and anti-wind opinions impact wind plant operational activity, providing insights into local resistance and its effects on renewable energy projects.
Main Takeaways
The overarching model analysis did not provide significant findings, but alluded to individually significant interacting relationships that may be inhibiting the forward progression in clean energy developments. These interactions are worth exploring with expanded datasets, as a limited amount of data was utilized for this study, restricting the sample analysis. Using what is currently available, we will interpret the socioeconomic factors in this model as they relate to real-world social dynamics.
Population Density
Interestingly, pro/neutral-wind power areas demonstrated an increase in population density and median income was associated with a decrease in the odds of having an operational wind power plant. It was revealed in areas with pro/neutral-wind power sentiments with the lowest income percentile were an exception and experienced an increase in the odds of an active wind plant as population density increased. Whereas in anti-wind regions, as population density increased an inverse effect was observed. Across all median income groups, anti-wind areas with higher population densities had marginally greater odds of having an active wind plant. These anti-wind findings suggested areas with lower population density are at greater risk of experiencing SDS. Both trends revealed could be an indication of the magnitude in which socioeconomic interactions influence sustainable energy developments.
Median Income
Overall, higher-income areas were found to have increased odds of deactivated wind plants. Regardless of a pro/neutral-wind power sentiment, as the median wealth increased the odds of operational activity decreased. This may be an indicator that wealthier areas are at greater risk of experiencing SDS due to disproportionate access to financial resources that influence energy policy decisions. Advantages such as wealth assist minority opinion holders when strategically lobbying to tailor policies to better align with their priorities. Uneven socioeconomic power-dynamics lead to minority opinion holders preventing the development of wind power infrastructure, alongside other renewable energy solutions. Overall, these findings suggest that socioeconomic factors play a heavily influential role in shaping renewable energy projects.
Anti-Wind Infrastructure Opinion
As suspected, areas with higher opposition to wind infrastructure were less likely to have operational wind plants. Conversely, the opposite was seen for pro/neutral-wind opinion holding areas. This aligns with expectations that local opposition and social mobilization impacts the establishment of wind plants. Therefore, addressing and mitigating local resistance is essential for enhancing the feasibility and acceptance of wind energy initiatives.
Figure 1: Wind turbines on the Bishop Hill wind farm operate among the corn and soybean fields near Bishop Hill, Illinois (U.S. Department of Agriculture, 2017).
The data source that was utilized in this project, US Wind Data, focuses on the public stance on wind infrastructure for census tract regions within a 3 km buffer zone of a wind infrastructure project. It contains categorical variables, binary variables, continuous socioeconomic factors such as % of races, % precinct political GOP affiliated voting share, mobilization tactics, and more. For simplicity’s sake, we’re going to focus on the variables below.
Variables of Interest:
Name
Description
status
Describes the project operating status. In this study, we have converted it into a binary variable: 1 is operating, 0 is not_operating.
pop_den
Tract-level 2010 census data for population density (per mi^2)
med_inc
Tract-level 2010 census data for median income ($)
is_anti_wind
Binary measure of wind opposition: 1 is against wind power developments, 0 is pro wind power developments.
U.S. Wind Power Plant Locations
Before diving in, let’s get a sense of where we’ll be investigating.
Code
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Load Libraries ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# The following libraries were selected based on their functionality and ability to optimize our data for mapping.# Loading Librarieslibrary(tidyverse) # essential r package library(sf) # package simplifies spatial dataframeslibrary(tmap)library(terra)library(broom)library(stars)library(sjPlot)library(naniar)library(cowplot)library(leaflet)library(maptiles) library(ggthemes)library(ggspatial)library(patchwork)library(kableExtra)set.seed(99)knitr::opts_chunk$set(echo = T, warning = F, message = F)#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Read & Raster ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Below we will use the package `sf` to convert the lat/long vector data # into a raster geometry column. In this single line, we will also be # assigning the CRS EPSG:4326 to the sf data frame.# Coordinate Reference Systems, CRS, are required in order for the data# to be projected onto a map. The CRS was selected because it # provides a relatively proportionate display of the United States.# We are open to suggestions regarding our CRS if a different project better fits our data.# reading in & storing datawind_data <-read.csv("../data/wind_data/wind_data_usa.csv") # Confirm the Data Loaded Properly#head(wind_data) # displays the first 6 rows of the data# Let's read in our datawind_sf <- wind_data %>%# creates geometry column with desired crs st_as_sf(coords =c("longitude", "latitude"), crs =4326) %>%select(plant_name, everything())# quick CRS check#glimpse(crs(wind_sf)) # output should reveal WGS84, EPSG:4326#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Check Point! ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Let's stop and see if our outputs are what we expect.# Were the lat/long columns correctly converted into a geometry column?# setdiff() is a way to quickly determine the differences between two data sets.# Sweet! we are looking good#setdiff(colnames(wind_sf), colnames(wind_data))#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Map Wind Plants ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Using tmap(), we can visualize the locations of wind infrastructure power plants# throughout the United States. To achieve a more granular map, we'll need to# utilize another data set to create a base layer for our map in order to # observe these wind plants with respect to state and county jurisdictions. # First visual of the U.S. wind data provided by the geometry points# Make sure tmap is in interactive modetmap_mode("view")# Create the interactive maptm_shape(wind_sf) +tm_dots(col ="darkgreen",size =0.05,alpha =0.5 ) +tm_basemap("OpenStreetMap")
Figure 2: Toggleable map containing the US power plant data utilized for this anaylsis. Information about the area’s activism, polticial sentiment, median income ($), population composition, and more is available when clicking on a green bubble.
Data Distribution
Before jumping into any analysis, it’s important to get a sense of how the data is distributed and if there are any underlying trends or biases. We will employ a multivariate model to describe the effect of census tract level population density on the operating status of wind power infrastructure. A combination of binary and interaction logit regression will be considered. The initial model will apply OLS regression, this is really a formality to demonstrate why OLS is not the correct approach for interpreting our relationships of interest. The following will be a model with two continuous variables. These variables focus more on regionally dependent factors that intuitively seem to have an impact on mobilization variables that we don’t have time to cover in this project. We’ll be working with a mix of discrete and continuous data, so there some wrangling will be necessary to run the regressions we’re interested in.
Code
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Inspect & Standarize Data ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Determining Variable Assignments for OLS#unique(wind_sf$status) # displays unique values in this# Need to rename status output variables# creating two categories: operating & not_operating# We are removing 'Operating | Decommissioned' because it skews the dataunwanted_status <-"Operating | Decommissioned"replacement_status <-"Uncertain Status"wind_sf$status[wind_sf$status== unwanted_status]<-"Uncertain Status"# were we successful ?#unique(wind_sf$status) # displays unique values in this# cleaning out NAs for OLSwind_sf <- wind_sf %>%filter(is.na(status) =='FALSE') %>%filter(is.na(is_anti_wind) =='FALSE') %>%filter(is.na(pop_den) =='FALSE') %>%filter(is.na(med_inc) =='FALSE') %>%filter(is.na(median_age) =='FALSE') %>%filter(is.na(n_turbs) =='FALSE')# were we successful ?#unique(wind_sf$status) # displays unique values in this# if_else preserves the data type but replaces unwanted valueswind_us <- wind_sf %>%mutate(status =if_else( status %in%c('Cancelled', 'Out of service (temporarily)', 'Standby', 'Decommissioned', 'Uncertain Status'), 'not_operating','operating') )# are our only outputs "operating" and "not_operating"?#print(unique(wind_us$status))# status as factor and reassigned valueswind_us <- wind_us %>%mutate(status =case_when(status =="operating"~1, status =="not_operating"~0))#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Check point! ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# are our only outputs 0 or 1?paste("The indicator column contains", {unique(wind_us$status)})
[1] "The indicator column contains 1" "The indicator column contains 0"
The visualizations display the majority of the distribution lies within the actively operating wind infrastructure plants. This is an early indication of the degree of sample bias influencing our analysis. A trend of inactive plants and lower population density is notable in both figures. Collectively they demonstrate smaller population densities contain more inactive wind infrastructure plants. This could be attributed to with weight of a singular vote in regions with smaller demographics. Local mobilization of minority opinion holders in these regions have a greater availability to push back against policymakers. However, this visual does not encapsulate all of the necessary information required to determine this with full certainty. Our data set has low availability for non-operating infrastructure and as such, in the regression figure on the right these are being treated as outliers.
Code
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Violin Distribution ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Create the violin plot with log scaledensity_plot <-ggplot(data = wind_us, aes(x =factor(status), y = pop_den, fill =factor(status))) +geom_violin(alpha =0.6, color ="darkblue") +geom_jitter(col ="#F84C0B",width =0,height =0.05,alpha =0.35,size =4) +labs(title ="Population Density vs Wind Power Plant Operating Status",subtitle="Logorithimic Distribution",x ="Activation Status",y =expression("Population Density (Log Scale, "~ mi^-2~")")) +# rename x-axis labels for clarityscale_x_discrete(labels =c("0"="Inactive", "1"="Active")) +# Apply logarithmic scale to y-axisscale_y_log10() +theme_538() +scale_fill_manual(values =c("skyblue", "darkblue")) +# Adjust title font and alignmenttheme(plot.title =element_text(size =40,family ="Georgia", face ="bold",hjust = .99,color ="#293F2C"), # Adjust subtitle font and alignmentplot.subtitle =element_text(size =38,family ="Georgia",color ="#293F2C",hjust =0.5), axis.title =element_text(size =36,family ="Georgia",color ="#293F2C"),axis.text =element_text(size =34,family ="Georgia",color ="#293F2C"),# Move legend to the bottomlegend.position ="top", # Remove legend title if not neededlegend.title =element_blank(), # Adjust legend text sizelegend.text =element_text(size =34,family ="Georgia",color ="#293F2C"), # Background color for legendlegend.key =element_rect(fill ="grey94", color ="grey94"), plot.background =element_rect(color ="#FDFBF7") ) +coord_flip()#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Jitter OLS + GLM ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Optimized jitter plot with smooth linesjitter_plot_optimized <-ggplot(data = wind_us, aes(x = pop_den, y = status)) +# assign color to legend geom_jitter(aes(color ="Data Points"),width =0,height =0.05,alpha =0.6,size =4) +# Adjusted size for better visibilitygeom_smooth(method ="lm",se =FALSE,aes(color ="OLS Line"),size =1.2, # Slightly thicker line for visibilitylinetype ="solid") +geom_smooth(method ="glm",se = T,aes(color ="GLM Line"),size =1.2,linetype ="dashed",method.args =list(family ="binomial")) +labs(title ="Population Density vs Wind Power Plant Operating Status",subtitle="Logorithimic Distribution Regression Comparison",y ="Activation Status",x =expression("Population Density (Log Scale, "~ mi^-2~")")) +# rename yaxis labels for clarityscale_y_continuous(breaks =c(0, 1),labels =c("0"="Inactive", "1"="Active")) +scale_x_log10() +theme_538() +# Adjust title font and alignmenttheme(plot.title =element_text(size =40,family ="Georgia", face ="bold",hjust = .99,color ="#293F2C"), # Adjust subtitle font and alignmentplot.subtitle =element_text(size =38,family ="Georgia",hjust =0.5,color ="#293F2C"), axis.title =element_text(size =36,family ="Georgia",color ="#293F2C"),axis.text =element_text(size =34,family ="Georgia",color ="#293F2C"),# Move legend to the bottomlegend.position ="top", # Remove legend title if not neededlegend.title =element_blank(), # Adjust legend text sizelegend.text =element_text(size =34,family ="Georgia",color ="#293F2C"), # Background color for legendlegend.key =element_rect(fill ="grey94", color ="grey94"), plot.background =element_rect(color ="#FDFBF7") ) +scale_color_manual(name ="Legend", # Title for the legendvalues =c("Data Points"="#F84C0B", "OLS Line"="blue", "GLM Line"="skyblue"),labels =c("Data Points"="Data Points", "OLS Line"="OLS Line", "GLM Line"="GLM Line"))# Combine plots horizontallycombined_plot <- density_plot + jitter_plot_optimized +# Arrange plots side-by-sideplot_layout(ncol =2) combined_plot
Figure 3: The two visual aids above contain violin plot with jitter points (left) and a comparative regression plot using OLS and GLM (right). The x-axis is the population density and the y-axis is the operational status for the wind power plant. Binary indicator variable will be status column opertating is 1, and not_operating will be 0. Combining two figures provides us fuller insights into both the general trend and changes in probability of the binary outcome for the population density predictor.
Odds Ratio for a Logit Model
To interpret the model, we compute the odds ratios for each coefficient, providing insight into how each variable and its interactions affect wind plant activity.
The Summary of Coefficients Table provides a comprehensive view of how each variable and their interactions contribute to the likelihood of wind plant activity, facilitating a better understanding of the model’s results (Table 1). For those less familiar with interpreting multivariate relationships:
Estimations reveal the model’s predicted effect on the activity status from a single unit increase in a variable. Another way to interpret this is using the odds ratio to understand the individual effects of each variable on the likelihood of having an active wind plant. The interaction terms show how the relationship between each pair of variables influences the odds of operational wind plant activity.
For instance, the interaction between pop_den:is_anti_wind captures how wind plant operational activity is affected with each unit increase in population density in areas with anti-wind power sentiment. In the instance of this dataset for this interation model, an insignificant decrease in the odds of an activate wind plant was observed as population increases in anti-wind power areas. However, this is for the overall model and invites further exploration into how different socioeconomic groups vary in propensity for an active wind plant.
Code
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Comprehensive Model ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Fit the comprehensive modelcomprehensive_model <-glm(status ~ pop_den * med_inc * is_anti_wind,data = wind_us,family ='binomial')# Get summary object to extract p-values and standard errorsmodel_summary <-summary(comprehensive_model)coef_table <- model_summary$coefficients# Build the summary data framecoef_summary <-data.frame(Term =rownames(coef_table),Estimate = coef_table[, "Estimate"],Std_Error = coef_table[, "Std. Error"],# z_value = coef_table[, "z value"],p_value = coef_table[, "Pr(>|z|)"],Odds_Ratio =exp(coef_table[, "Estimate"]))# Round and style the tablekable(coef_summary, format ="html", digits =4, caption ="Table 1: Summary of Coefficients, Odds Ratios, and P-values") %>%kable_styling(bootstrap_options =c("striped", "hover", "condensed", "responsive"),position ="center", font_size =12)
Table 1: Summary of Coefficients, Odds Ratios, and P-values
Term
Estimate
Std_Error
p_value
Odds_Ratio
(Intercept)
(Intercept)
4.1017
1.2132
0.0007
60.4441
pop_den
pop_den
0.0011
0.0018
0.5491
1.0011
med_inc
med_inc
0.0000
0.0000
0.7639
1.0000
is_anti_wind
is_anti_wind
-0.7008
1.5483
0.6508
0.4962
pop_den:med_inc
pop_den:med_inc
0.0000
0.0000
0.4573
1.0000
pop_den:is_anti_wind
pop_den:is_anti_wind
-0.0016
0.0033
0.6337
0.9984
med_inc:is_anti_wind
med_inc:is_anti_wind
0.0000
0.0000
0.1732
1.0000
pop_den:med_inc:is_anti_wind
pop_den:med_inc:is_anti_wind
0.0000
0.0000
0.5593
1.0000
Operation Activity Trends
Our analysis of wind plant activity using logistic regression models has provided valuable insights into the factors influencing the presence of operational wind plants.The probability distribution of having an active local wind plant across different population density and median income quantiles reveals some notable trends:
Code
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- GLM Prob by Cat ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Quantile grouping (0–25%, 25–50%, 50–75%, 75–100%)wind_us <- wind_us %>%mutate(income_q =ntile(med_inc, 4),density_q =ntile(pop_den, 4),income_label =factor(paste0(seq(25, 100, by =25)[income_q], "%"),levels =paste0(seq(25, 100, by =25), "%") ),density_label =factor(paste0("Percentile ", seq(25, 100, by =25)[density_q], "%"),levels =paste0("Percentile ", seq(25, 100, by =25), "%") ),anti_label =ifelse(is_anti_wind ==1, "Anti-Wind", "Pro/Neutral") )# Predict probabilitieswind_us$predicted_prob <-predict(comprehensive_model, newdata = wind_us, type ="response")#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- GLM Visualation by Cat ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Average predicted probability per groupplot_data <- wind_us %>%group_by(income_label, density_label, anti_label) %>%summarise(probability =mean(predicted_prob, na.rm =TRUE), .groups ="drop") %>%mutate(income_numeric =as.numeric(factor(income_label, levels =unique(income_label))))# visualize the dataggplot(plot_data, aes(x = income_label, y = probability, fill = density_label)) +# color by density side by sidegeom_bar(stat ="identity", position ="dodge") +# split by opinionfacet_wrap(~ anti_label) +# add lm trendline to more easily interpretgeom_smooth(aes(x = income_numeric, y = probability, group = density_label),method ="lm", color ="#F84C0B", se =FALSE, size =1) +# color palette for pop denscale_fill_manual(values =c("#cae6f2", "#7abbe2", "#2a7fb8", "#084081"),name ="Pop Density Quantile" ) +# customslabs(title ="Predicted Probability of Active Wind Infrastructure Projects",subtitle ="By Median Income Percentile, Population Density Percentile, and Wind Energy Sentiment",x ="Median Income Percentile Group",y ="Predicted Probability" ) +theme_minimal() +theme(text =element_text(family ="Georgia", size =22),axis.text.x =element_text(size =12),axis.text.y =element_text(size =14),axis.title.x =element_text(size =16),axis.title.y =element_text(size =16),plot.title =element_text(size =22, face ="bold", hjust =1.3),plot.subtitle =element_text(size =18, hjust =1.1),legend.position ="top",legend.title =element_text(size =16),legend.text =element_text(size =14),legend.key.size =unit(0.5, "cm"),legend.spacing.x =unit(0.2, "cm"),legend.spacing.y =unit(0.2, "cm"),legend.background =element_rect(fill ="white", color ="grey100", size =0.5) ) +guides(fill =guide_legend(title =expression("Population Density (Log Scale, "~ mi^-2~")"), title.position ="top",title.hjust =0.5))
Figure 4: Side-by-side bar graphs demonstrating the relationships between population density (color of bars), median income percentiles (x-axis), and the predicted probability of an active wind plant status (y-axis). The graph on the left are the anti-wind opinion areas and the graph on the right are the pro/neutral-wind opinion areas. The orange trend line in each respective graph is the logit model fit.
The Big Question
May an assumption be made that regardless of population density, areas with higher median income have a greater propensity for inactive wind power plants and are more at risk of experiencing spatially distorted signalling?
To answer this, let’s touch a bit on the social psychology at potentially at play.
Code
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Plant Acitivity Visual ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# MRS. Robinson approach: matching, restriction,# stratification, regression# Summarize grouped probabilitiesgroupwise_propensity <- wind_us %>%group_by(income_label, density_label, anti_label) %>%summarise(# model-based probability // propensity scorepropensity_score =mean(predicted_prob),# actual treatment rate // where treatment is an active plantobserved_active_status =mean(status), # number of units in groupn =n(),# p-testp_value =prop.test(round(mean(status) *n()), n())$p.value,.groups ="drop" ) %>%rename(`Income Percentile`= income_label,`Population Density Percentile`= density_label,`Wind Opinion`= anti_label,`Estimated Probability of Active Wind Plant`= propensity_score,`Observed Wind Plant Status Rate`= observed_active_status,Count = n,`p-value`= p_value )# Expand multipoints into points — each point gets repeated attributesprob_points <- groupwise_propensity %>%st_cast("POINT")# Create color palettepal <-colorFactor(palette =c("#E1BE6A", "#40B0A6"),domain = prob_points$`Wind Opinion`)# Create popup content for each pointpopup_content <-paste0("<strong>Income Percentile:</strong> ", prob_points$`Income Percentile`, "<br>","<strong>Population Density Percentile:</strong> ", prob_points$`Population Density Percentile`, "<br>","<strong>Wind Opinion:</strong> ", prob_points$`Wind Opinion`, "<br>","<strong>Estimated Probability of Active Wind Plant:</strong> ", round(prob_points$`Estimated Probability of Active Wind Plant`, 3), "<br>","<strong>Observed Wind Plant Status Rate:</strong> ", round(prob_points$`Observed Wind Plant Status Rate`, 3), "<br>","<strong>Count:</strong> ", prob_points$Count)leaflet(prob_points) %>%addTiles() %>%addCircleMarkers(color =~pal(`Wind Opinion`),radius =6,stroke =FALSE,fillOpacity =0.7,popup = popup_content ) %>%addLegend("bottomright",pal = pal,values =~`Wind Opinion`,title ="Wind Opinion",opacity =1 )
Figure 5: Toggleable map of the wind power plants colored by local energy-sentiments (anti-wind is yellow, pro/neutral is blue). Clicking a bubble will reveal the respective percentiles for the area’s categorized covariates, the propensity score, observed wind plant activity rate, and the number of matching observations within the dataset.
Donations and Lobbying
Addressing this question involves considering the impact of political and economic influence on energy policy. Verba, Schlozman, and Brady argue that “higher-income individuals typically have more resources and time to engage in political activities, which can influence local energy policies” (Verba, Schlozman, & Brady, 1995, p. 234). This might suggest that wealthier areas could exert more influence to prioritize different energy investments or limit the visibility of such projects. Conversely, those in lower income brackets may have fewer resources and less time for such activities, potentially resulting in lower levels of wind plant advocacy and adoption.
High-income individuals or entities may make substantial donations to lobbying groups or political campaigns to promote specific agendas, including energy policies that align with their interests. Hertel and Tsigas highlight that “financial contributions and lobbying play a significant role in shaping policy decisions” (Hertel & Tsigas, 2002, p. 78). This could mean that higher-income areas, with their greater financial resources, might be able to affect decisions on wind plant locations or energy policy. This financial influence can interfere the development and implementation of local energy projects.
Wealthier communities may prioritize different types of energy projects based on their specific economic and environmental goals. They may lobby to invest in more adaptable or luxury technologies rather than large-scale wind projects (Wolsink, 2007). Overall, this suggests that socioeconomic factors play a influential role in shaping the types of renewable energy projects that are pursued and highlights the need for tailored strategies to address diverse community priorities in renewable energy planning.
Influence of Socioeconomic Status
Interestingly, high-income areas with lower population densities tend to have the lowest likelihood of having an active local wind plant. This observation is intriguing and suggests that higher income alone may decrease the probability of wind power plant activity. A study on socio-economic dynamics conducted by McCright and Dunlap found “socioeconomic status significantly affects individuals’ environmental attitudes and policy preferences” (McCright & Dunlap, 2011, p. 402). Their research suggests that higher-income individuals might have different priorities or less immediate need for such infrastructure compared to lower-income communities.
An increase in median income is linked to a decrease in the odds of having an operational wind plant. Higher income areas show a lower likelihood of wind plant activity, potentially due to different local priorities or economic factors. Previous studies have found that wealthier communities often have different priorities or face different economic constraints, which can affect their engagement with renewable energy projects (Stokes & Breetz, 2018). Higher-income areas may have more access to alternative energy solutions or face less immediate pressure to implement wind infrastructure.
The presence of wind plants might be influenced by socioeconomic status in ways that reflect broader patterns of power and influence. These insights align with the notion that “economic power and market conditions influence decisions related to energy infrastructure” (Kirschen & Strbac, 2004, p. 112). Therefore, it is plausible that higher-income areas might both contribute to and benefit from a different set of energy policies compared to lower-income areas. Areas with higher incomes might prioritize other forms of energy or infrastructure development based on their resources and political connections.
Resources and Political Mobilization
Consistent with expectations, areas with the highest population density show the highest probability of hosting wind plants in this example. This trend aligns with the assumption that regions with more people may have a higher demand for renewable energy sources like wind power. Studies have shown, “urban areas with higher population densities are often more likely to invest in environmental infrastructure, including wind energy projects” (Kahn, 2007, p. 58).
A unit increase in population density is associated with a slight increase in the odds of having an operational wind plant. This suggests that areas with higher population densities are marginally more likely to host wind plants. Areas with higher population density often have increased energy consumption due to higher demand for residential, commercial, and industrial energy (Gillingham, Stock, 2018). This increased demand may drive investment in energy infrastructure, including renewable sources such as wind power (Lund, Mathiesen, 2009). Therein, as urbanization and population density increase, it becomes increasingly feasible and advantageous for these areas to invest in and support wind energy projects.
Public opposition is an influencing factor in the siting and development of wind energy projects. Areas with higher opposition to wind infrastructure are less likely to have operational wind plants. Community opposition is a well-documented barrier to wind energy deployment, local resistance can severely impact the implementation of wind energy projects (Krohn & Damborg, 1999). This is supported by other studies that show community attitudes play a crucial role in the success of wind projects, with higher opposition correlating with reduced likelihood of project success (Wolsink, 2007). Therefore, addressing and mitigating local resistance is essential for enhancing the feasibility and acceptance of wind energy initiatives.
Probability of Active Wind Plant Status by Socioeconomic Groups
Code
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# ---- Wind Sentiment Tables ----#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Split into two tables by Wind Opinionprob_summary_yes <- groupwise_propensity %>%filter(`Wind Opinion`=="Anti-Wind")prob_summary_no <- groupwise_propensity %>%filter(`Wind Opinion`=="Pro/Neutral") # Display the table for "Anti-wind"kable(prob_summary_yes, format ="html", digits =3,caption ="Table 2: Probability of Active Wind Plant by Income and Population Density (Anti-Wind Opinion)") %>%kable_styling(bootstrap_options =c("striped", "hover", "condensed", "responsive"),position ="center",font_size =12 )
Table 2: Probability of Active Wind Plant by Income and Population Density (Anti-Wind Opinion)
Income Percentile
Population Density Percentile
Wind Opinion
Estimated Probability of Active Wind Plant
Observed Wind Plant Status Rate
Count
p-value
geometry
25%
Percentile 25%
Anti-Wind
0.897
1.000
10
0.004
MULTIPOINT ((-69.76194 45.1...
25%
Percentile 50%
Anti-Wind
0.898
1.000
13
0.001
MULTIPOINT ((-86.53389 45.7...
25%
Percentile 75%
Anti-Wind
0.896
1.000
8
0.013
MULTIPOINT ((-68.14722 46.0...
25%
Percentile 100%
Anti-Wind
0.898
0.875
16
0.006
MULTIPOINT ((-68.3802 45.34...
50%
Percentile 25%
Anti-Wind
0.874
0.800
10
0.114
MULTIPOINT ((-68.2425 44.72...
50%
Percentile 50%
Anti-Wind
0.868
0.667
9
0.505
MULTIPOINT ((-70.38111 44.5...
50%
Percentile 75%
Anti-Wind
0.872
0.941
17
0.001
MULTIPOINT ((-68.86583 44.0...
50%
Percentile 100%
Anti-Wind
0.872
0.692
13
0.267
MULTIPOINT ((-74.10333 44.8...
75%
Percentile 25%
Anti-Wind
0.838
0.714
7
0.450
MULTIPOINT ((-103.3143 47.1...
75%
Percentile 50%
Anti-Wind
0.833
1.000
7
0.023
MULTIPOINT ((-71.2925 44.70...
75%
Percentile 75%
Anti-Wind
0.835
0.933
15
0.002
MULTIPOINT ((-69.35 44.4967...
75%
Percentile 100%
Anti-Wind
0.835
0.692
13
0.267
MULTIPOINT ((-102.0522 33.6...
100%
Percentile 25%
Anti-Wind
0.779
0.833
6
0.221
MULTIPOINT ((-101.22 47.167...
100%
Percentile 50%
Anti-Wind
0.793
0.857
14
0.016
MULTIPOINT ((-120.6925 47.1...
100%
Percentile 75%
Anti-Wind
0.774
0.833
18
0.010
MULTIPOINT ((-71.85629 43.6...
100%
Percentile 100%
Anti-Wind
0.778
0.714
21
0.081
MULTIPOINT ((-73.07 44.6616...
Code
# Display the table for "Pro/Neutral Wind"kable(prob_summary_no, format ="html", digits =24,caption ="Table 3: Probability of Active Wind Plant by Income and Population Density (Pro/Neutral-Wind Opinion)") %>%kable_styling(bootstrap_options =c("striped", "hover", "condensed", "responsive"),position ="center",font_size =12 )
Table 3: Probability of Active Wind Plant by Income and Population Density (Pro/Neutral-Wind Opinion)
Income Percentile
Population Density Percentile
Wind Opinion
Estimated Probability of Active Wind Plant
Observed Wind Plant Status Rate
Count
p-value
geometry
25%
Percentile 25%
Pro/Neutral
0.9874322
0.9886364
88
1.292240e-19
MULTIPOINT ((-67.971 45.614...
25%
Percentile 50%
Pro/Neutral
0.9874621
0.9782609
46
2.297590e-10
MULTIPOINT ((-101.5547 46.9...
25%
Percentile 75%
Pro/Neutral
0.9877794
1.0000000
59
4.320720e-14
MULTIPOINT ((-67.8111 46.54...
25%
Percentile 100%
Pro/Neutral
0.9906839
1.0000000
55
3.304751e-13
MULTIPOINT ((-95.87703 45.5...
50%
Percentile 25%
Pro/Neutral
0.9881681
1.0000000
74
2.137287e-17
MULTIPOINT ((-68.14694 44.7...
50%
Percentile 50%
Pro/Neutral
0.9881626
1.0000000
67
7.433292e-16
MULTIPOINT ((-120.7531 47.1...
50%
Percentile 75%
Pro/Neutral
0.9882450
0.9740260
77
2.302811e-16
MULTIPOINT ((-70.55981 44.4...
50%
Percentile 100%
Pro/Neutral
0.9900075
0.9285714
28
1.382694e-05
MULTIPOINT ((-74.0299 44.89...
75%
Percentile 25%
Pro/Neutral
0.9887634
0.9838710
62
6.731306e-14
MULTIPOINT ((-97.8853 47.12...
75%
Percentile 50%
Pro/Neutral
0.9887455
0.9887640
89
7.796100e-20
MULTIPOINT ((-111.4392 47.4...
75%
Percentile 75%
Pro/Neutral
0.9888465
1.0000000
59
4.320720e-14
MULTIPOINT ((-94.75222 45.0...
75%
Percentile 100%
Pro/Neutral
0.9902842
0.9767442
43
1.061064e-09
MULTIPOINT ((-68.52342 44.7...
100%
Percentile 25%
Pro/Neutral
0.9896110
1.0000000
38
1.946706e-09
MULTIPOINT ((-148.9 64.0583...
100%
Percentile 50%
Pro/Neutral
0.9896740
1.0000000
50
4.218937e-12
MULTIPOINT ((-97.24166 48.9...
100%
Percentile 75%
Pro/Neutral
0.9897500
1.0000000
42
2.508861e-10
MULTIPOINT ((-162.5569 66.8...
100%
Percentile 100%
Pro/Neutral
0.9893852
0.9809524
105
1.690000e-22
MULTIPOINT ((-72.47704 44.1...
Model Considerations
It is important to note that there was heavy bias towards operational wind plants within the dataset, as observed in the data distribution visualization and in Summary Coefficients Table (Figure 1, Table 1). The table described a baseline 60% odds ratio of having an operational wind plant. The overall model did not provide significant findings, but encouraged deeper exploration of the data. When interpreting the model on a more granular level, the p-values across all combinations of the pro/neutral-wind percentile probabilities were found to be highly significant (**p < 0.001), and roughly half of the anti-wind probabilities were found to be significant (**p < 0.05). Although the propensity scores illuminated some trends relating higher median income and lower wind plant operational activity, these results are not statistically bolstered enough to use as strong conclusions. The lack of significance across the board suggests there may be insufficient evidence to definitively assess the impact of these variables on wind plant activity. This interpretation is intended to be used as starting point for deeper analysis.
Techniques Applied
Multivariate Logit Regression Models
Logit & Log Odds Ratio
Average Probability with z-test
Limitations
Insufficient Data & Omitted Variable Bias (OVB)
The data set may lack comprehensive factors affecting wind plant activity, such as specific local policies or environmental conditions.The analysis is limited by omitted variables which may be additionally influence wind plant activity. Ensuring the exogeneity of variables is challenging, and logistic regression models do not account for all underlying factors.
Ethical Critiques
This is not an appropriate analysis to use for definitive decision making, rather it is an introspection on influencing socioeconomic dyanmics at hand. It is not a complete representation of the populous and requires additional data to support trends discussed in the paper.
Future Works Considerations
If given the opportunity, I would expand my analysis to include a more thorough social science approach, inspecting counter-factual groups and their respective propensity scores to have an active wind power plant. I would utilize supplemental datasets to explore in greater detail exogenity to best determine which values are likely interacting and produce the best model fit. Bolstering the analysis by identifying and including relevant variables to address the omitted variables bias present in the current statistical exploration. By expanding the dataset and refining the model, the analysis could better represent the dynamics influencing the employment sustainable wind power plants.
References
Data Citation
Replication Data for: Prevalence and Predictors of Wind Energy Opposition in North America: DOI 10.7910/DVN/LE2V0R
Collaborators: Leah Stokes, Emma Franzblau, Jessica R. Lovering, Chris Miljanich
Source: American Wind Association, Columbia Sabin Center
Citations
Stokes, Leah C., et al. “Prevalence and Predictors of Wind Energy Opposition in North America.” Proceedings of the National Academy of Sciences, vol. 120, no. 40, Sept. 2023, doi:10.1073/pnas.2302313120.
Stoke, L. C. “Front Matter.” American Journal of Political Science, vol. 60, no. 4, 2016. JSTOR, http://www.jstor.org/stable/24877456. Accessed 26 October. 2023
Kahn, M. E. (2007). Green Cities: Urban Growth and the Environment. Brookings Institution Press.
McCright, A. M., & Dunlap, R. E. (2011). The Politicization of Climate Change and Polarization in the American Public’s Views of Global Warming. Society & Natural Resources, 24(5), 398-413.
Verba, S., Schlozman, K. L., & Brady, H. E. (1995). Voice and Equality: Civic Voluntarism in American Politics. Harvard University Press.
Hertel, T. W., & Tsigas, M. E. (2002). The Role of Political Lobbying and Financial Contributions in Policy Making. In Public Policy Analysis (pp. 67-90). Routledge.
Kirschen, D. S., & Strbac, G. (2004). Fundamentals of Power System Economics. Wiley.
Gillingham, K., & Stock, J. H. (2018). The Cost of Reducing Greenhouse Gas Emissions. Journal of Economic Perspectives, 32(4), 169-190. doi:10.1257/jep.32.4.169
Lund, H., & Mathiesen, B. V. (2009). Energy system analysis of 100% renewable energy systems: The case of Denmark in years 2030 and 2050. Energy, 34(5), 524-532. doi:10.1016/j.energy.2008.10.009
Krohn, S., & Damborg, S. (1999). Public attitudes towards wind power. Renewable Energy, 16(1), 954-960. doi:10.1016/S0960-1481(98)00339-5
Wolsink, M. (2007). Wind power implementation: The nature of public beliefs and the social acceptance of renewable energy. Renewable and Sustainable Energy Reviews, 11(6), 1586-1603. doi:10.1016/j.rser.2005.10.001
Stokes, L. C., & Breetz, H. L. (2018). Public opinion and wind energy: The impact of socio-economic factors on policy support. Environmental Politics, 27(1), 1-22. doi:10.1080/09644016.2017.1387160
“U.S. Department of Agriculture.” Flickr, www.flickr.com/photos/usdagov.